package com.ysy.service;

import com.ysy.entity.dto.NoteOnlyReq;
import com.ysy.entity.dto.NoteReqDTO;
import com.ysy.entity.dto.NoteTopReq;
import com.ysy.entity.vo.NoteLikeReqVo;
import com.ysy.entity.vo.NoteReqDetail;
import com.ysy.entity.Note;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ysy.entity.vo.NoteUnLikeReqVo;
import com.ysy.persimmons.common.response.Response;

/**
 * <p>
 * 笔记表 服务类
 * </p>
 *
 * @author yangSy
 * @since 2025-04-23
 */
public interface NoteService extends IService<Note> {

    Response<?> addNote(NoteReqDTO note);

    Response<?> updateNote(NoteReqDTO note);

    Response<?> delNote(NoteReqDetail note);

    Response<?> selectNote(NoteReqDTO note);

    Response<?> selectDetailNote(NoteReqDetail note);

    Response<?> delNoteCache(String noteId);

    Response<?> updateOnlyMe(NoteOnlyReq note);

    Response<?> updateTop(NoteTopReq note);

    Response<?> unLike(NoteUnLikeReqVo unLikeReqVo);

    Response<?> like(NoteLikeReqVo likeReqVo);

    Long checkNoteExistAndGetCreatorId(Long noteId);
}
